/**
 * Copyright (C) 2008-2010 Matt Gumbley, DevZendo.org <http://devzendo.org>
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package org.devzendo.commonapp.prefs;

import java.io.File;

/**
 * Abstraction for working with the directory that holds preference storage.
 * 
 * @author matt
 *
 */
public interface PrefsLocation {
    /**
     * Does the directory containing the preferences file exist?
     * @return true if it exists, false if it doesn't.
     */
    boolean prefsDirectoryExists();

    /**
     * Create the prefs directory.
     * @return true iff the directory was created; false if it was not. Note
     * that if it existed anyway, you'd get false.
     * @see File.mkdir
     */
    boolean createPrefsDirectory();

    /**
     * @return the prefsDir
     */
    File getPrefsDir();

    /**
     * @return the prefsFile
     */
    File getPrefsFile();
}